package day03;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

import org.junit.Test;

/**
 * 实现时间的计算: 要求用户输入身份证号，若格式有误，要求其重新输入。然后根据身份证号码输出20岁生日
 * 所在周的周三的日期。
 * 例如:
 * 出生日期:1992-07-15。
 * 20岁生日:2012-07-15
 * 当周的周三为:2012-07-18
 * @author Bonnie
 *
 */
public class Test05 {
	@Test
	public void t1() throws ParseException {
		System.out.println("请输入您的身份证号");
		String mm="\\d{18}";
		Scanner sc=new Scanner(System.in);
		String id=sc.nextLine();
		if(id.matches(mm)) {
			//将出生日期截取出来
			id=id.substring(6, 14);
			
			DateFormat d=new SimpleDateFormat("yyyyMMdd");
			//将出生日期转换为date
			Date bir=d.parse(id);
			
			//创建日历
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(bir);
			//设置日历时间为20年以后
			calendar.add(calendar.YEAR,20);
			//设置日历时间为这周的周三
			calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
			//将日历时间转换为date
			bir=calendar.getTime();
			//设置输出时间格式
			DateFormat dd=new SimpleDateFormat("yyyy-MM-dd");
			String m=dd.format(bir);			
			System.out.println(m);
					
		}else {
			System.out.println("请输入正确的身份证号");
		}
}

}
